我想要ASP.NET中的表单身份验证的好处.我希望它能继续授权我这样,但是我的情况有一点不同;我想对一个简单的Web服务(特别是由客户端提供)进行身份验证.
我有我的代码来查看Web位置并查看它们是否应该被授权,但是如何在ASP.NET中设置cookie [?]或授权标志,他们知道当前用户已获得授权.
基本上…
if (HttpContext.Current.User.Identity.IsAuthenticated) // we're all good //Other wise... bool success = CheckClientsWebService(string username,string password); if (success) // Somehow tell .NET that they're authorized
*注意:这是一个相当简单的服务,不处理组或角色.只需检查用户是否可以查看该站点.
@H_403_10@解决方法
在表单中,身份验证不能证明您是谁在表单身份验证cookie中.考虑到这一点,您无法在自定义登录表单中创建票证而无需创建自定义提供程序?我绝对认为你可以.进行快速测试并创建表单身份验证票证,并查看开箱即用的成员资格提供程序是否认为用户已通过身份验证.
我很好奇 – 所以这里有一些代码..
模型
public class SignInviewmodel { public string Username { get; set; } public string Password { get; set; } }
调节器
public class SignInController : Controller { public ActionResult Index() { var model = new SignInviewmodel {}; return View(model); } [HttpPost] public ActionResult Index(SignInviewmodel model) { if (model.Username == "Fred" && model.Password == "Mertz") { FormsAuthentication.SetAuthCookie(model.Username,false); return RedirectToAction("Secure"); } return View(model); } [Authorize] public ActionResult Secure(SignInviewmodel model) { return View(); } [Authorize] public ActionResult logout(SignInviewmodel model) { FormsAuthentication.SignOut(); return RedirectToAction("Index"); }
Index.cshtml
@using (Html.BeginForm()) { <fieldset> <legend>SignInviewmodel</legend> <div class="editor-label"> @Html.LabelFor(model => model.Username) </div> <div class="editor-field"> @Html.EditorFor(model => model.Username) @Html.ValidationMessageFor(model => model.Username) </div> <div class="editor-label"> @Html.LabelFor(model => model.Password) </div> <div class="editor-field"> @Html.EditorFor(model => model.Password) @Html.ValidationMessageFor(model => model.Password) </div> <p> <input type="submit" value="Login" /> </p> </fieldset> }
Secure.cshtml
<h2>Secure</h2> @Html.ActionLink("logout","logout")@H_403_10@ @H_403_10@
相关文章
项目要求通过网站上传大文件,比如视频文件,通过摸索实现了文件分片来上传,然后后台进行合并。 使用了...
安装新版本的Nginx(vim /etc/yum.repos.d/nginx.repo) [nginx-stable] name=nginx stable repo baseu...
什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功...
在Windows下使用Docker,我们选择Docker Desktop这个软件,非常方便。 ## Docker Desktop介绍及安装 Do...
项目开始设计的是运行在windows下,所以一开始采用的是windows服务模式来获取多媒体文件信息,后来要求...
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主...