Как только вы загрузите dotnetopenid , посмотрите в каталоге samples \ RelyingPartyMvc. Есть пример, где они заменяют систему аутентификации MVC по умолчанию на OpenID. Соответствующий код находится в Controllers / UserController.cs. Вот действие Аутентификация:
//Stage 1: Show form asking for Open ID identifier URL
var openid = new OpenIdRelyingParty();
if (openid.Response == null) {
// Stage 2: user submitting Identifier
Identifier id;
if (Identifier.TryParse(Request.Form["openid_identifier"], out id)) {
openid.CreateRequest(Request.Form["openid_identifier"]).RedirectToProvider();
} else {
ViewData["Message"] = "Invalid identifier";
return View("Login");
}
} else {
// Stage 3: OpenID Provider sending assertion response
switch (openid.Response.Status) {
case AuthenticationStatus.Authenticated:
FormsAuthentication.RedirectFromLoginPage(openid.Response.ClaimedIdentifier, false);
break;
case AuthenticationStatus.Canceled:
ViewData["Message"] = "Canceled at provider";
return View("Login");
case AuthenticationStatus.Failed:
ViewData["Message"] = openid.Response.Exception.Message;
return View("Login");
}
}
return new EmptyResult();
Нет, это не единственный способ. В качестве альтернативы вы также можете выбрать одну строку, перебрать ее и проверить отдельные объекты и типы Python столбца. Если значение не равно None (в этом случае поле SQL равно NULL), это должно дать вам довольно точное указание на тип столбца базы данных.
Я не пробовал это в Python, но вы можете попробовать что-нибудь вроде
SELECT *
FROM sqlite_master
WHERE type = 'table';
, которое содержит оператор DDL CREATE, используемый для создания таблицы. Анализируя DDL, вы можете получить информацию о типе столбца, такую как она есть. Помните, что SQLITE довольно расплывчатый и неограниченный, когда дело касается типов данных столбцов.