关于 ASP.NET 中的身份验证模式






1.04/5 (11投票s)
2006年6月7日
1分钟阅读

63158

353
当你开始一个 ASP.NET 程序时,你可以考虑身份验证的值是“windows”还是“forms”。
引言
当你为客户使用 ASP.NET 开发程序时,你应该考虑安全性。在 web.config 文件中,你可以设置身份验证模式的值为“windows”或“forms”。它们之间有什么区别?如何使用它们?(身份验证还有其他值,本文不考虑它们。)
如何使用 windows 模式
当你选择这种模式时,你可以让所有客户端访问你的项目。代码如下(在这种情况下,你无法使用 'User.Identity.Name' 获取值)
<authentication mode="Windows" />
<authorization>
<allow users="*" />
</authorization>
其他 你可以使用 windows 身份验证让特定的客户端访问你的项目。代码如下(在这种情况下,你可以使用 'Use.Identity.Name' 获取值,然后你可以用它来做你喜欢的事情。)
<authorization>
<deny users="?" />
</authorization>
如何使用 Forms 模式
如果你选择 'Forms' 模式,首先你应该指定一个页面,并确保所有客户端都可以找到它。代码如下
<authentication mode="Forms">
<forms name="Authentication" loginUrl="LoginForForms.aspx" />
</authentication>
<location path="LoginForForms.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
其次,在该页面中,你需要验证用户的 ID 和密码。代码如下
if(UserIsLogin())
{
try
{
FormsAuthentication.RedirectFromLoginPage("2", false);
}
catch (Exception ex)
{
Response.Redirect("defaultForForms.aspx");
}
}
最后
这些知识对每个人来说都很简单。但我知道,从我使用 C# 和 ASP.NET 以来,已经过去了两年。所以我写这篇文章,因为我相信有很多程序员对它了解很多。这篇文章肯定有很多我没有意识到的错误。所以欢迎你告诉我。