gpt4 book ai didi

C# 基于 cookie 的授权

转载 作者:太空狗 更新时间:2023-10-30 01:25:41 24 4
gpt4 key购买 nike

我正在为我的页面使用 jquery cookie 实现 C# 授权。我在 cookie 和我的管理页面中设置/加密用户名和密码,如果我识别出 cookie,则用户已获得授权。如果没有,他将被重定向到登录页面。问题是,加载页面后会读取 cookie,因此我可以手动点击管理页面,仅在几秒钟内它就会被重定向。如何防止为还没有 cookie 的访问者加载管理页面?基于 cookie 的授权的正确架构是什么?

注意:我没有使用 ASP.NET 角色或用户表。我为用户实现了自己的表格。

最佳答案

我怀疑您是在重新发明轮子。您不必使用 Membership Provider 和 ASP.Net 成员架构来利用表单例份验证。当用户登录时,只需将 Auth Ticket (cookie) 放在他们身上即可。然后您可以简单地在管理页面上进行管理检查。

下面的一些建议...

编辑:我最初发布了一种通过 UserData 在 Auth Ticket 中存储角色的方法,但我认为这对于这种情况来说有点矫枉过正。

Web.config:

<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="30" slidingExpiration="true" />
</authentication>
. . .
<membership>
<providers>
<clear />
</providers>
</membership>

登录后:当用户提交他们的用户名和密码时,验证他们并检查他们是否是管理员:

if (UserIsValid(username, pwd)) // some validation call
{
FormsAuthentication.SetAuthCookie(username, true);
}

Admin.aspx:最后,快速破解以限制对管理页面的访问。当页面加载时,检查用户是/不是管理员:

if (!IsAdmin(User.Identity.Name)) // some admin call
Response.Redirect("Default.aspx");

关于C# 基于 cookie 的授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6415947/

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