如何设置 ASP.NET 身份验证属性

2023-12-15

我的 web.config 文件中有以下设置。如果用户未登录,它基本上会限制对页面的访问。如果我不想使用 asp 登录控件或实现会员资格提供程序,我如何“告诉”asp loginregister.aspx 页面已授权该请求如果我想实现自己的登录系统?

Thanks.

<authentication mode="Forms">
            <forms loginUrl="~/loginregister.aspx"
                   name=".ASPXFORMSAUTH" />
        </authentication>

        <authorization>
            <deny users="?" />
        </authorization>

<location path="~/secretpage.aspx" allowOverride="true">
        <system.web>
            <compilation debug="true" />
            <authorization>
                <deny users="?" />
            </authorization>
        </system.web>
    </location>

验证用户后,设置票证......

    Response.Cookies.Add(TicketHelper.CreateAuthCookie(Login1.UserName, userData, Login1.RememberMeSet /*persistent cookie*/));

使用这个辅助类...

如果使用登录控件,请在 Authenticated 事件处理程序中执行此操作。

using System;
using System.Web;
using System.Web.Security;

namespace CustomAuthRepurposingFormsAuth
{
    public static class TicketHelper
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="userData">be mindful of the cookie size or you will be chasing ghosts</param>
        /// <param name="persistent"></param>
        /// <returns></returns>
        public static HttpCookie CreateAuthCookie(string userName, string userData, bool persistent)
        {
            DateTime issued = DateTime.Now;
            // formsAuth does not expose timeout!? have to hack around the
            // spoiled parts and keep moving..
            HttpCookie fooCookie = FormsAuthentication.GetAuthCookie("foo", true);
            int formsTimeout = Convert.ToInt32((fooCookie.Expires - DateTime.Now).TotalMinutes);

            DateTime expiration = DateTime.Now.AddMinutes(formsTimeout);
            string cookiePath = FormsAuthentication.FormsCookiePath;

            var ticket = new FormsAuthenticationTicket(0, userName, issued, expiration, true, userData, cookiePath);
            return CreateAuthCookie(ticket, expiration, persistent);
        }

        public static HttpCookie CreateAuthCookie(FormsAuthenticationTicket ticket, DateTime expiration, bool persistent)
        {
            string creamyFilling = FormsAuthentication.Encrypt(ticket);
            var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, creamyFilling)
                             {
                                 Domain = FormsAuthentication.CookieDomain,
                                 Path = FormsAuthentication.FormsCookiePath
                             };
            if (persistent)
            {
                cookie.Expires = expiration;
            }

            return cookie;
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置 ASP.NET 身份验证属性 的相关文章

随机推荐

  • R 折叠列以形成数字列表

    In R我该如何折叠列以形成具有数字列表类型的另一列 就像我们将数字列表定义为l c 1 2 3 df lt read table text X Y a 26 a 3 a 24 b 8 b 1 b 4 header TRUE 我正在尝试这个
  • 如何使用 fuzzywuzzy 比率将一个数据框中的值与另一个数据框中的列进行比较

    我有一个数据框df sample具有 10 个解析地址 并将其与另一个具有数十万个解析地址记录的数据帧进行比较df Both df sample and df共享完全相同的结构 zip code city state street numb
  • 如何在 Netezza 中声明变量?

    我有一个 Netezza 查询 其中引用了一系列案例语句中的几个日期 我不想每次都替换所有这些日期 而是想在开头声明一个变量并在整个查询中使用它 在 SAS 中我会这样做 LET end p 31DEC2014 d proc sql cre
  • Python 中的字符串格式化%i

    我必须将代码从Python2 x转换为Python3 主要是字符串格式 我遇到过这样的事情 Logger info random String d and i format value1 value2 现在 我知道 d 可以替换为 d 但找
  • 实体类型“Uri”需要定义主键

    我引用了一个通用模型 因此我无法控制其中的属性 假设它看起来像这样 public class Message public Guid Id get set public string Sender get set public Uri Ur
  • 错误 openerp.addons.website.models.ir_http: 500 内部服务器错误: 从 odoo 注销后

    我在 Ubuntu 14 04 中使用 odoo v9 社区安装 所有工作完成后完美完成 但是当我安装 odoo 的网站模块并从 odoo 注销后 它显示以下错误 500内部服务器错误 和我的日志 Traceback most recent
  • 通用类 (T) - 从一系列类型中指定 VB.Net

    这是我正在尝试开发的代码 Public Structure Statistic Of t Dim maxStat As t Dim curStat As t Public Sub New ByVal pValue As t maxStat
  • 为什么 Gremlin JavaScript 使用“from_”映射而不是“from”?

    在发现你必须使用之前我为此苦苦挣扎了几个小时from 代替from使用 gremlin javascript 时 在深入研究源代码后 我终于发现代码正在使用from 代替from see code 因为我是新手 所以这很奇怪 因为它的对应部
  • 如何将 gif 保存到我的相册中?

    我尝试使用 UIImageWriteToSavedPhotosAlbum 和 ALAssetsLibrary 将我的 gif 保存到相册 但是当我尝试通过电子邮件发送 gif 时 它没有动画 我很确定元数据在保存时会丢失 有谁知道如何保存
  • 如何在 R 中使用 ggplot2 制作类似的图?

    对于以下数据集 我想为每个变量绘制图表 并对每个 10 个观察值进行不同的颜色 我可以使用 R 库来做到这一点 我想学习如何使用 ggplot2 来做到这一点 dput mydata structure list beta0 C1 c 5
  • 使用 make 文件创建目录

    我想使用 makefile 创建目录 我的项目目录是这样的 Project output source Testfile cpp Makefile 我想将所有对象和输出放入相应的输出文件夹中 我想创建编译后像这样的文件夹结构 Project
  • 在 Knit 中调整观星台的大小

    我使用 knit 整理了一份文档 虽然该文档的大部分看起来都不错 但有一个回归表太宽 如果不进行一些更改 就无法容纳在页面上 回归表是使用 stargazer 生成的 并且相当广泛 我尝试按如下方式调整整个块的大小 r echo FALSE
  • 无法连接到 Localdb,但可以使用命名管道

    我真的很讨厌将我的应用程序连接到数据库 我正在尝试使用连接到数据库 localdb MSSQLLocalDB在连接字符串中 我收到此错误 A network related or instance specific error occurr
  • web-api POST body 对象始终为 null

    我仍在学习 Web API 所以如果我的问题听起来很愚蠢 请原谅我 我的里面有这个StudentController public HttpResponseMessage PostStudent FromBody Models Studen
  • 使用 VBA 创建 Outlook 事件(不是约会!)

    所以有一个线程所以链接在这里它链接了如何创建 Outlook 事件 但实际上它创建的是约会 而不是事件 差异可以阅读HERE 我的问题很简单 如何使用 VBA 创建实际事件而不是约会 谢谢 约会和事件之间的区别是事件持续 24 小时或更长时
  • Zend 表单引导注释日期选择器“提供给转义助手的对象,但标志不允许递归”

    我正在使用带有 Bootstrap 和 ReverseForm 适配器的 Zend 框架 并且有一个有趣的问题 当我在 Zend Form 中使用 Bootstrap Datepicker 时 出现下一个异常 Object provided
  • 将位图转换为 ninepatch 以用作背景

    我有一个问题困扰了我好几天了 我正在尝试将九个补丁图像转换为位图数组 并将特定颜色更改为不同的颜色 我无法将位图转换回九个补丁 因此我可以将其用作布局的背景 我尝试使用此代码创建位图 然后将其转换回九个补丁可绘制对象 但它只是启动活动并闪烁
  • asp 服务器错误“无法加载文件或程序集”,但程序集肯定存在。

    我目前收到以下错误 在 locahost 网站上 Could not load file or assembly MySql Data Version 6 5 4 0 Culture neutral PublicKeyToken c5687
  • android中Videoview的身份验证

    我正在使用一个视频观看播放http视频 Http视频url需要验证 所以请让我知道如何为 VideoView 设置身份验证 如果没有 是否还有其他替代方法来查看经过身份验证的视频 感谢和问候 斯里 哈沙 VideoView 中有一个隐藏方法
  • 如何设置 ASP.NET 身份验证属性

    我的 web config 文件中有以下设置 如果用户未登录 它基本上会限制对页面的访问 如果我不想使用 asp 登录控件或实现会员资格提供程序 我如何 告诉 asp loginregister aspx 页面已授权该请求如果我想实现自己的