3001—C# MVC随笔

一、【身份认证—Forms】

        通用准备:

        Web.config中新增        

<authentication mode="Forms">
      <forms loginUrl="/Acct/index" timeout="2000" cookieless="UseCookies" name="LoginCookieName"></forms>
    <!--
        loginUrl=登录认证页面。/{Controller}/{Action}
        loginCookieName=cookie存储的变量名称
    -->
    </authentication>

        在需要认证的Controller或Action上增加注解[Authorize]。不需要认证的Action上增加注解[AllowAnonymous]。

        1—简单型        

private bool chkLogin(string name,string pwd)
{
    bool blnResult;
    //方法—1:
    //演示验证用户及密码,实际从数据库比对
    if(string.Compare(name,"super")==0 && pwd=="123"   ){
        
        //用户写入Cookie,为密文
        //行参2表示:变量时效性{true—持久式}    
        FormsAuthentication.SetAuthCookie(name, true);
        
        blnResult = true;
    }    
    //返回结果
    return blnResult;
}

         2—功能性

 private bool chkLogin(string name, string pwd)
        {
            bool blnResult=false ;            
            
            if(string.Compare(name,"super")==0 && pwd=="123"){

                var authTicket = new FormsAuthenticationTicket(
                    1,                              //——版本
                    name,           
                    DateTime.Now,                   //——创建
                    DateTime.Now.AddMinutes(20),    //——失效时期
                    true,
                    "7"                           //Role——角色。userData区域字段
                );

                string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                var ticketCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                ticketCookie.HttpOnly = true;            //使用SSL加密传输
                //ticketCookie.Secure = FormsAuthentication.RequireSSL;
                //ticketCookie.Domain = FormsAuthentication.CookieDomain;
                ticketCookie.Path = FormsAuthentication.FormsCookiePath;
                Response.Cookies.Add(ticketCookie);
                blnResult = true;
            }            

            return blnResult;
        }

           3—名称说明

   FormsAuthentication.FormsCookieName 属性(命名空间:System.Web.Security)

 获取用于存储Forms身份认证票据的Cookie名称。   默认值是“.ASPXAUTH”

  修改默认值,通过web.config 

<authentication mode="Forms">
  <forms loginUrl="member_login.aspx"
    cookieless="UseCookies"
    name=".ASPXFORMSAUTH" />
</authentication>

 

二、版本信息     

       MVC项目版本信息存储于AssemblyInfo.cs文件中。如下图

              

       拥有2个版本字段:程序集版本、文件版本

       1—前端获取MVC后端版本

       在cshtml可用于校验后端逻辑是否为指定版本(当前环境:MVC-4,razor语法)。在页面中增加一个<p>,属性为不显示,可在chrome右键菜单中“查看网页源代码”看到值。       

<!-- 校验:版本 -->
<p style="visibility:hidden">
   MVC_Ver{    
           <!--    程序集版本号    -->
               [Assembly]: @System.Reflection.Assembly.GetAssembly(typeof(OpenAuth.Mvc.Models.AuthenticateAttribute)).GetName().Version.ToString()
           <!--    文件版本号    -->     
           @{
               var fver = (AssemblyFileVersionAttribute)Assembly.GetAssembly(typeof(OpenAuth.Mvc.Models.AuthenticateAttribute)).GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true)[0];
               @:  ,   [File]: @fver.Version.ToString()
               }
          }       
</p>

       说明:OpenAuth.Mvc.Models.AuthenticateAttribute为项目中models文件夹中任一类名称。

      前端浏览器(view-source:)中查看效果如下:

      

     

 

 

 

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值