asp.net-mvc – 死简单的ASP.NET MVC 5密码保护?
发布时间:2020-12-16 03:59:47 所属栏目:asp.Net 来源:网络整理
导读:我有一个在Azure上运行的ASP.NET MVC 5 Web应用程序作为webrole. 有没有办法轻松密码保护整个网站?我不想要任何注册或帐户处理,只需要一个密码就可以进入网站(也许是用户名,但这不是必需的).类似于.htaccess文件的东西. 我所看到的ASP.NET MVC身份验证的每
我有一个在Azure上运行的ASP.NET MVC 5 Web应用程序作为webrole.
有没有办法轻松密码保护整个网站?我不想要任何注册或帐户处理,只需要一个密码就可以进入网站(也许是用户名,但这不是必需的).类似于.htaccess文件的东西. 我所看到的ASP.NET MVC身份验证的每个示例都附带了大量要实现的代码,而Azure似乎无法支持基本身份验证(至少不容易). 解决方法
你是对的,开箱即用的ASP.NET MVC中不支持基本身份验证.但是,您可以使用操作过滤器轻松添加它,如
here所述.首先,您需要创建一个操作过滤器:
public class BasicAuthenticationAttribute : ActionFilterAttribute { public string BasicRealm { get; set; } protected string Username { get; set; } protected string Password { get; set; } public BasicAuthenticationAttribute(string username,string password) { this.Username = username; this.Password = password; } public override void OnActionExecuting(ActionExecutingContext filterContext) { var req = filterContext.HttpContext.Request; var auth = req.Headers["Authorization"]; if (!String.IsNullOrEmpty(auth)) { var cred = System.Text.ASCIIEncoding.ASCII.GetString(Convert.FromBase64String(auth.Substring(6))).Split(':'); var user = new { Name = cred[0],Pass = cred[1] }; if (user.Name == Username && user.Pass == Password) return; } var res = filterContext.HttpContext.Response; res.StatusCode = 401; res.AddHeader("WWW-Authenticate",String.Format("Basic realm="{0}"",BasicRealm ?? "Ryadel")); res.End(); } } 然后,您可以使用属性保护操作,控制器: [BasicAuthenticationAttribute("your-username","your-password",BasicRealm = "your-realm")] public class HomeController : BaseController { ... } 要保护整个网站,请将此过滤器添加到全局过滤器: protected void Application_Start() { ... GlobalFilters.Filters.Add(new BasicAuthenticationAttribute("your-username","your-password")); ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.Net中的日期差异
- asp.net – 在Azure Compute Emulator之外运行DiagnosticMo
- ASP.NET:动态地为图像添加“水印”
- ASP.NET 常用 文件上传方法
- asp.net-mvc – ASP.NET MVC 4如何根据角色提供不同的HTML?
- asp.net – 用于网页的SQL Reporting Services查看器 – 您
- ASP.NET使用VB设置文件的路径
- model-view-controller – 比较Dates DataAnnotations验证a
- 使用Asp.net Mvc3 Razor视图方式扩展JQuery UI Widgets方法
- asp.net-mvc – asp.net mvc Ajax.BeginForm
推荐文章
站长推荐
- .net – MVC中的Pdf Viewer在View中显示pdf内容
- validation – Controller.ValidateModel方法.它
- 即使通过自定义服务器端验证仍然触发ASP.NET按钮
- asp.net-mvc-3 – MVC3比MVC2有什么优势?
- asp.net-mvc – ASP.NET MVC是否允许私有ViewMod
- 自动完成 – ASP.NET MVC3 Razor – 自动完成教程
- 如何在Asp.Net 4.0 / IIS7中支持压缩的HTTP请求?
- Google_PWA_ServiceWork_渐进式 Web 应用_给应用
- asp.net-mvc – 生成的视图中的模型值错误
- asp.net – .NET 4.0实现OutputCacheProvider
热点阅读