ITKeyword,专注技术干货聚合推荐

注册 | 登录

ASP.net MVC 4 中Security.FormsAuthentication验证用户的状态(匿名|已登录)

分享于

2021腾讯云限时秒杀,爆款1核2G云服务器298元/3年!(领取2860元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1062

2021阿里云最低价产品入口+领取代金券(老用户3折起),
入口地址https://www.aliyun.com/minisite/goods

推荐:[Asp.Net MVC4]验证用户登录实现

最近我们要做一个仿sina的微博,碰巧的是我最近在学习mvc,就想用mvc技术实现这个项目。 既然是微博,那不用想也应该知道肯定要有用户登陆,但是和常规的asp.net

编号:ylbtechASPnetMvc100010013Mvc4Security 1, 功能描述

ASP.net MVC 4 下利用 System.Web.Security.FormsAuthentication类,验证用户的状态(匿名|已登录 ) 以项目为例:在视图和和区域里的视图,分别都列举俩个页面(允许匿名和不允许匿名)。 2, 技术与环 境

ASP.net MVC 4 下System.Web.Security.FormsAuthentication类,验证用户的状 态(匿名|已登录) 3, 解决方案资源管理器

4, 功能截图

4.1,匿名状态下() 4.1.1

/Home/Index

网站首页

4.1.2

/Account/Login

登录

4.1.3

只要是匿名用户,单击加“[NM]”修饰的地址,都会跳转到/Accout/Login页面

4.2,已登录状态下 4.2.1

/Accout/Index

用户中心 5, 代码分析

5.1,

/web.config

设置重定向登录页面 <authentication mode="Forms">

<forms loginUrl="~/Account/Login" timeout="2880" /></authentication> 5.2,

/Controllers/AccountController.cs 账户管理控制器

ylb_tip:1, 加“[Authorize]”修饰的方法拒绝匿名。

ylb_tip:2, 提示如果是"HttpPost" 提交,则Request["param"])则再也获取不了值。

ylb_tip:3, 在返回"ReturnUrl"的时候与以前的不同。 using System.Web.Mvc;using System.Web.Security;namespace Mvc4Security.Controllers{

public class AccountController : Controller

{

//

// GET: /Account/

[Authorize]

public ActionResult Index()

{

return View();

}

//

//

GET: /Account/Login

[HttpGet]

public ActionResult Login()

{

//如果是跳转过来的,则返回上一页面ReturnUrl

if (!string.IsNullOrEmpty(Request["ReturnUrl"]))

{

string returnUrl = Request["ReturnUrl"];

ViewData["ReturnUrl"] = returnUrl;

//如果存在返回,则存在隐藏标签中

}

// 如果是登录状态,则条转到个人主页

if (Session["Username"] != null)

{

return RedirectToAction("Index");

}

else

{

return View();

}

}

//

// Post: /Account/Login

[HttpPost]

public ActionResult Login(string username, string userpass,string returnUrl)

{

if (username == "sunshine" && userpass == "m123")

{

//创建身份验证票证,即转换为“已登录状态”

FormsAuthentication.SetAuthCookie(username, false);

//存入Session

Session["Username"] = username;

//如果是跳转过来的,则返回上一页面ReturnUrl

if (returnUrl.Trim().Length!=0)

{

return Redirect(returnUrl);

}

else

{

//用户个人主页

return RedirectToAction("Index");

}

}

else

{

ViewData["Tip"] = "用户名或密码有误!";

return View();

}

}

//

// GET: /Account/Logout

[HttpGet]

public ActionResult Logout()

{

//取消Session会话

Session.Abandon();

//删除Forms验证票证

FormsAuthentication.SignOut();

return RedirectToAction("Index", "Home");

}

}} 5.3

/Controllers/HomeController.cs

首页控制器(注:区域里面的权限原理相同,在这儿就不多介绍) using System.Web.Mvc;namespace Mvc4Security.Controllers{

public class HomeController : Controller

{

//

// GET: /Home/

public ActionResult Index()

{

return View();

}

//

// GET: /Home/VipIndex

[Authorize]

public ActionResult VipIndex()

{

return View();

}

}}

5.4

/Account/Login 登录页面 <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>&l

推荐:ASP.NET - 如何:向匿名用户和登录用户显示不同的信息

通过在页上包含 LoginView 控件可以向匿名用户和登录(经过身份验证的)用户显示不同的信息。LoginView 控件包含两个模板:一个用于向匿名用户显示信息,

t;asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">

Login</asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"><h2>Login</h2><form action="/Account/Login" method="post">

<fieldset>

<legend>Login</legend>

<input name="returnUrl" type="hidden" value='<%=ViewData["ReturnUrl"] %>' />

username:<input id="username" name="username" value="sunshine" /><br />

password:<input id="userpass" name="userpass" value="m123" /><br />

<button type="submit">Login</button>

</fieldset></form></asp:Content>

5.5

/Global

不同:有划分出了“Application_Start”方法。 using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Http;using System.Web.Mvc;using System.Web.Routing;namespace Mvc4Security{

// Note: For instructions on enabling IIS6 or IIS7 classic mode,

// visit http://go.microsoft.com/?LinkId=9394801

public class MvcApplication : System.Web.HttpApplication

{

protected void Application_Start()

{

AreaRegistration.RegisterAllAreas();

WebApiConfig.Register(GlobalConfiguration.Configuration);

FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

RouteConfig.RegisterRoutes(RouteTable.Routes);

}

}}

5.6.1

/App_Start/RouteConfig.cs

不同:这里的路由参数必须是键值对。 using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using System.Web.Routing;namespace Mvc4Security{

public class RouteConfig

{

public static void RegisterRoutes(RouteCollection routes)

{

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(

name: "Default",

url: "{controller}/{action}/{id}",

defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },namespaces:new

string[] { "Mvc4Security.Controllers" }

);

}

}}

5.6.2

/App_Start/FilterConfig.cs 【没修改】

using System.Web;using System.Web.Mvc;namespace Mvc4Security{

public class FilterConfig

{

public static void RegisterGlobalFilters(GlobalFilterCollection filters)

{

filters.Add(new HandleErrorAttribute());

}

}}

5.6.3

/App_Start/WebApiConfig.cs【没修改】

using System;using System.Collections.Generic;using System.Linq;using System.Web.Http;namespace Mvc4Security{

public static class WebApiConfig

{

public static void Register(HttpConfiguration config)

{

config.Routes.MapHttpRoute(

name: "DefaultApi",

routeTemplate: "api/{controller}/{id}",

defaults: new { id = RouteParameter.Optional }

);

}

}}

6, 示例 | 讲解案例下载 博客园讲解: http://ylbtech.cnblogs.com/ 百度文库开发文档: http://passport.baidu.com/? business&aid=6&un=ylbtech#7 谷歌开源代码下载: http://code.google.com/p/ylbtechaspnetmvc/downloads/list 请单击 “ylbtechASPnetMvcSecurity100010010” 百度网盘

http://pan.baidu.com/s/1i49zn73 请单击 “ASPnetMvcSecurity100010010” 作者: ylbtech 出处: http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作 者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究 法律责任的权利。

最终目标

“代码的国际化标准 示例 ylb,tech”,最大程度地规范软件编程 开发统一,优质, 高效,易学,为建设软件强国(中国)而努 力。

推荐:[Asp.Net MVC4]验证用户登录实现 .

最近我们要做一个仿sina的微博,碰巧的是我最近在学习mvc,就想用mvc技术实现这个项目。 既然是微博,那不用想也应该知道肯定要有用户登陆,但是和常规的asp.net

编号:ylbtechASPnetMvc100010013Mvc4Security 1, 功能描述    ASP.net MVC 4 下利用 System.Web.Security.FormsAuthentication类,验证用户的状态(匿名|已登录 ) 以项目为例:在视图和和区

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。