gpt4 book ai didi

c# - ASP.NET 身份验证问题

转载 作者:行者123 更新时间:2023-11-30 15:48:05 25 4
gpt4 key购买 nike

我的登录程序有问题。

一些客户提示他们无法登录。我可以在我们的日志中看到他们登录成功,并且他们从登录页面重定向到成员(member)区。但是不知何故,登录没有被检测到,它们被弹回登录页面。

我已经要求客户检查是否支持 cookie ( http://www.html-kit.com/tools/cookietester/ ),但即使此测试返回 true,问题仍然存在。

这就是我实现登录过程的方式(简单化):

protected void Login(string email, string password)
{

FormsAuthentication.SignOut();


Guid clientId = /* Validate login by checking email and password, if fails display error otherwise get client id */


FormsAuthentication.SetAuthCookie(clientId.ToString(), true);

HttpContext.Current.Response.Redirect("~/Members.aspx");


}

在成员(member)页面上,我通过 Page_Load 函数检查身份验证:

public static void IsAuthenticated()
{
if (!HttpContext.Current.User.Identity.IsAuthenticated)
{
HttpContext.Current.Response.Redirect("~/Login.aspx", true);
}
}

也许我使用的 FormsAuthentication 完全错误?

我以前问过这个问题,但还是没能弄明白,如果有任何帮助,我将不胜感激。

来 self 的 Web.Config:

<system.web>
<compilation debug="false">
<assemblies>
...
</assemblies>
</compilation>
<authentication mode="Forms"/>
<sessionState mode="InProc" cookieless="false" timeout="180"/>
<customErrors mode="On"/>
<httpHandlers>
...
</httpHandlers>
<httpModules>
...
</httpModules> </system.web>

最佳答案

公共(public)静态无效 IsAuthenticated(){ 如果(!HttpContext.Current.User.Identity.IsAuthenticated) { HttpContext.Current.Response.Redirect("~/Login.aspx", true); }

当您使用表单例份验证时不是必需的。

当您在 web.config 中指定表单例份验证时(您还可以在其中指定登录页面)

<authentication mode="Forms">
<forms loginUrl="/Authorization/Login" timeout="60" />
</authentication>

并且您拒绝所有未经授权的用户访问

<authorization>
<deny users="?" />
</authorization>

您不必自己检查用户的身份验证,框架会处理这件事。

我会将 FormsAuthentication.SignOut(); 代码放在“注销”链接后面

关于c# - ASP.NET 身份验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2964342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com