OWIN简单登录,不登录
本文关键字:登录 OWIN 简单 | 更新日期: 2023-09-27 18:04:49
我试图使用OWIN登录一个简单的固定身份验证,但我似乎不能让它工作在所有。我觉得我错过了一些非常简单的东西,但似乎无法弄清楚。除了保存这个人的电子邮件地址外,我不需要也不关心其他任何东西,也不想要oauth,这是大多数教程和示例所显示的。当我运行下面的代码时,我从来没有登录过,并且当我在调试器中查看时,身份验证声明总是空的。
My Razor网页:
@using System.Security.Claims;
@{
Microsoft.Owin.IOwinContext ctx = Request.GetOwinContext();
var usr = Request["text1"];
if (IsPost && usr == "valid@user.com")
{
ctx.Authentication.SignOut(Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie);
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Email, usr));
claims.Add(new Claim(ClaimTypes.Name, var));
var id = new ClaimsIdentity(claims, Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie);
ctx.Authentication.SignIn(id);
//FormsAuthentication.SetAuthCookie("valid@user.com", false); // Also fails
}
var IP = HttpContext.Current.User.Identity.IsAuthenticated.ToString();
var text = "valid@user.com";
}
<!DOCTYPE html>
<html lang="en">
<head><title></title></head>
<body>
<p>Are we Logged in? <strong>@IP</strong>.</p>
<form action="" method="post">
<p>
<label for="text1">First Number:</label>
<input type="text" name="text1" value="@text" />
<p><input type="submit" value="Add" /></p>
</form>
</body>
</html>
的启动类为
using Microsoft.AspNet.Identity;
using Microsoft.Owin;
using Microsoft.Owin.Security;
using Microsoft.Owin.Security.Cookies;
using Owin;
[assembly: OwinStartup(typeof(TypeScriptHTMLApp1.Startup1))]
namespace TypeScriptHTMLApp1
{
public class Startup1
{
public void Configuration(IAppBuilder app)
{
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType =DefaultAuthenticationTypes.ApplicationCookie,
AuthenticationMode = AuthenticationMode.Passive,
});
}
}
}
为什么它总是返回false,我如何使它成功登录?
如果您在本地运行且未使用SSL,请确保指示cookie处理程序不需要SSL。否则,它将永远不会发出cookie,看起来就像什么都没有发生。就在上周,这个问题还把我难住了。
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="false" />
</federationConfiguration>
</system.identityModel.services>