我是 ASP.NET MVC 新手,我需要检查用户是否在我的应用程序中登录,因此我将以下代码放在我的 global.asax 中
void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
string filePath= context.Request.FilePath;
string fileExtention = VirtualPathUtility.GetExtension(filePath);
// to skip request for static content like (.css or .js)
if (fileExtention == "")
{
if (filePath.ToLower() != "/account/login")
{
var user = (Utilisateur)context.Session["USER"];
if (user == null)
context.Response.Redirect(@"~/account/login");
}
}
}
我拦截每个传入的请求来进行检查我想知道是否还有其他方法可以完成此类工作
并提前致谢。
有必要这样做吗?您应该检查是否可以使用 ASP.NET 身份验证、授权和成员资格提供程序。 (当您创建新的 ASP.NET MVC 3 应用程序时[当您选中“Internet 应用程序”时]),它们会自动生成。
然后,您可以对控制器和操作使用注释:(伪代码):
这仅允许授权用户访问控制器(您甚至可以指定允许哪些用户或哪些角色):[Authorize(Roles = "Administrators")]
[Authorize]
controller{.....}
为了检查用户是否登录,已经有 User 属性和 Identity 属性。
此代码检查用户是否经过身份验证(登录):
controller...() {
...
if (User.Identity.IsAuthenticated) ...
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)