做个CMS吧(二)-Forms登陆验证_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 做个CMS吧(二)-Forms登陆验证

做个CMS吧(二)-Forms登陆验证

 2014/4/19 3:23:05  cgfun  博客园  我要评论(0)
  • 摘要:添加NuGet库:System.Web.Security一·配置web.config创建Admin文件夹,并添加web.config文件在<system.web>节点内加入如下节点:1:<authorization><!--禁止未通过的用户访问-->2:<denyuser="?"></deny>3:</authorization>因为这玩意默认启用Forms验证,所以不用添加<
  • 标签:for CMS

一·配置web.config

创建Admin文件夹,并添加web.config文件在<system.web>节点内加入如下节点:
class="lnum">   1:  <authorization><!--禁止未通过的用户访问--> 
   2:      <deny user="?"></deny>
   3:  </authorization>
因为这玩意默认启用Forms验证,所以不用添加<authentication mode=”Forms”>添加了反而会报错

 

二·创建Login页面

这个“玩意”的登陆页面的文件名目录结构必须是这样的“~/Account/Login.cshtml”;关键代码如下:

   1:  <form  method="post">
   2:     帐号<input name="user" type="text" />
   3:     密码<input name="pass" type="password" />
   4:     <input name="login" type="submit" value="登录" class="button" />
   5:  </form>

逻辑代码:

1: @{

   2:      var returnUrl = Request.QueryString["ReturnUrl"];
   3:      if(returnUrl.IsEmpty()){
   4:          returnUrl = "~/Admin/";
   5:      }
   6:      if(IsPost){
   7:          var username = Request.Form["user"];
   8:          var password = Request.Form["pass"];
   9:          var nickname = "";
  10:          var y = FormsAuthentication.HashPasswordForStoringInConfigFile(username+password,"md5");
  11:          var db = Database.Open("RazorCMS");
  12:          var sqlSel = "select TOP 1 username,password,nickname from SiteSet";
  13:          var user = db.QuerySingle(sqlSel);
  14:          var x = FormsAuthentication.HashPasswordForStoringInConfigFile(user["username"]+user["password"],"md5");
  15:          if(x==y){
  16:              nickname = user["nickname"];
  17:              FormsAuthentication.RedirectFromLoginPage(nickname,true);
  18:          }
  19:      }
  20:  }

高手解答:为什么我请求Admin目录不能定位到Default.cshtml

三·创建Default.cshtml

证明趋势登陆成功:

   1:  @{
   2:      var n = Context.User.Identity.Name;
   3:  }
  在页面输出n就行了
发表评论
用户名: 匿名