标签: forms-authentication

离线应用程序的用户身份验证

我有使用 asp.net mvc 2 创建的简单 jQuery Mobile 站点,并使用基本表单身份验证来授予对该站点的访问权限。

该应用程序是一个简单的工作日记,允许区域经理查看有关分配给区域团队的当前问题的详细信息。

当移动连接可用时,该应用程序运行良好,但由于缺乏信号,我们需要研究使应用程序的核心离线可用的可能性。我一直在研究使用 html 5 让应用程序离线的可能性,但找不到任何有关验证用户身份的信息。

该应用程序非常基本,本质上有两个不同的列表屏幕,可深入了解工作详细信息。

1. Login    
    1.1 Job List    
        2. Job Details

    1.2 Team Diary    
        2. Job Details
Run Code Online (Sandbox Code Playgroud)

我相信创建数据的离线版本非常容易,该版本允许在连接不可用时浏览日记,但我找不到有关在访问允许的页面之前需要身份验证的网站的任何信息离线。

这些内容不是敏感数据,但显然客户不希望任何人能够在面向公众的网站上浏览工作日记。

在可能离线使用的站点中对用户进行身份验证的首选方式是什么?

html forms-authentication offline-browsing

3
推荐指数
1
解决办法
4571
查看次数

在 ajax 调用特定操作期间跳过 RenewTicketIfOld

我使用setIntervalajax 调用来每分钟检查新消息。这个调用扩展了身份验证cookie(因为我将slidingExpiration设置为true),因此身份验证永远不会过期。

这个问题有类似的问题,但解决方案是针对 .net 类项目的,我不知道如何将其应用到我的 MVC 项目中。

如果解决方案采用属性的形式,就像[DoNotExtendAuthentication]我可以执行操作一样,那就太好了,但任何帮助都会受到赞赏。

ajax forms-authentication asp.net-mvc-4

3
推荐指数
1
解决办法
709
查看次数

访问被拒绝 - 401.2:未经授权的错误

我有一个托管在 IIS 7.5 上的 ASP.NET 网站,如下所示:

我有“customwebsite.com”作为网站,其中有两个 Web 应用程序 - uk 和 us - 这样我就可以通过 customwebsite.com/uk 和 customwebsite.com/us 访问这些应用程序。

customwebsite.com 目录没有任何 web.config,并且只有两个用于 Web 应用程序 us 和 uk 的文件夹。

美国和英国的 Web 应用程序都有各自的 web.config 并指定了表单身份验证,如下所示:

    <authentication mode="Forms">
      <forms loginUrl="/static/login.aspx" name="login" timeout="20"/>
    </authentication>

    <authorization>
      <deny users="?" />
    </authorization>
Run Code Online (Sandbox Code Playgroud)

在/static这个路径下,有一个web.config,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <authorization>
            <allow users="?" />
        </authorization>
    </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

当我点击我们应用程序的根 URL 时,网站会正确加载,但如果我从英国加载,则会收到如下错误: 在此输入图像描述

我已经检查了文件夹安全性,所有必需的用户都已被授予权限,并且对于美国和英国的应用程序都是相同的。

我检查了 IIS 日志,下面是失败时请求的响应代码: 401 0 0 1519 296

有人可以帮我解决这个问题吗?

asp.net forms-authentication iis-7.5

3
推荐指数
1
解决办法
1万
查看次数

ASP.NET Webforms 和 MVC 身份验证通过 cookie 共享

我的问题的部分答案似乎分布在多个帖子中,但到目前为止,将其放在一起对我来说还没有奏效,所以我希望当这篇文章得到解答时,它将形成更完整的指南

问题

我有一个 ASP.NET Webforms 应用程序 (W1),我想在一段时间内开始升级到单独的 MVC 应用程序 (M1)。包含W1的解决方案已升级到4.5,并在解决方案中创建了M1。W1 使用 ASP.Net 会员框架。

测试用例

在M1中,我将Authorize属性添加到HomeController中的About页面

[Authorize] public ActionResult About()

我在 M1 中添加了一个指向“关于”页面的链接,该链接源自 W1 中要求用户登录的页面。

期望

我希望用户能够登录到 W1,单击指向 M1 关于页面的链接并自动登录到 M1。

配置

步骤1

我已使用此处概述的方法从 W1 中提取了validationKey 和decryptionKey 。尽管这似乎是一个合乎逻辑的步骤,但我不确定是否需要这样做,因为不同的密钥仍然允许用户登录 W1。

第2步

按照此处此处的信息,并经过大量调试后,我修改了项目的 Web.config 文件部分,如下所示;

对于 W1:

<system.web>  
    <authentication mode="Forms">
          <forms name="WRSAUTH"
                 loginUrl="~/Account/Login.aspx"
                 defaultUrl="Default.aspx"
                 protection="All"
                 timeout="60"
                 path="/"
                 domain=".localhost"
                 requireSSL="false"
                 slidingExpiration="true"
                 cookieless="UseCookies"
                 enableCrossAppRedirects="false" />
        </authentication>
        <machineKey validationKey="<ValidationKey>"
                    decryptionKey="<DecryptionKey>"
                    validation="SHA1"
                    decryption="AES"/>
<compilation debug="true" targetFramework="4.5">
     <httpRuntime maxRequestLength="12288" />
</system.web>
Run Code Online (Sandbox Code Playgroud)

对于 M1:

  <system.web> …
Run Code Online (Sandbox Code Playgroud)

asp.net forms-authentication machinekey

3
推荐指数
1
解决办法
2285
查看次数

阻止访问者打开某些页面

我有ASP.Net 2.0网站,SQL Server作为数据库,C#2005作为编程语言.该网站几乎完成,所有链接都运行正常.但我想阻止普通用户打开几页.当任何用户单击这些特定链接时,将打开另一个包含ASP登录控件的页面.用户必须提供有效的用户标识和密码才能显示指向限制性页面的链接.但作为一个新手,我不知道如何利用ASP登录控件的全部功能.因为,如果用户知道受限页面的确切URL,则他/她可以绕过登录控件并通过在地址栏中键入URL来直接访问这些页面.我想阻止这个.如果用户直接在地址栏中输入网址,我希望页面本身应该检查,

我该如何实现这个功能?

谢谢.

Lalit Kumar Barik

asp.net verification forms-authentication sessionid

2
推荐指数
1
解决办法
4092
查看次数

使用ASP.NET表单身份验证进行IP检查

我正在asp.net网站上实现简单身份验证。使用基本的表单身份验证几乎是完美的:我将auth模式设置为Forms,并在web.config中有一个简短的凭据部分,并使用一个简单的Login aspx页面,该页面使用FormsAuthentication.Authenticate()和FormsAuthentication.RedirectFromLoginPage()。

但是,我想为某些客户端IP地址添加其他检查。如果请求来自某个IP地址,我想自动授权该请求,而不是将该请求重定向到“登录”页面。有没有简单的方法来扩展或覆盖内置表单AuthenticateRequest?我的另一个选择是创建自己的HttpModule来执行此操作,但是,如果我这样做,似乎会丢失FormsAuthentication方法的良好功能以及它们与凭据部分的交互。有什么建议么?

asp.net forms-authentication

2
推荐指数
1
解决办法
3974
查看次数

ASP.NET身份验证表单不能与CSS一起使用?

因此,在我成为ASP.NET的过程中,我遇到了一个问题.

我正在登录.我通过添加一个CSS文件为它添加了一些样式,经过一段时间我让它看起来好多了.此后我添加了ASP身份验证表单 - 实际上效果也很好,但如果您没有登录,则不使用CSS.

一旦我登录并收到cookie,我就可以回到登录页面,一切都很好看.但只要我没有"登录",页面看起来好像没有使用CSS.

我怎样才能解决这个问题?

html css asp.net forms-authentication

2
推荐指数
1
解决办法
2884
查看次数

如何使用表单身份验证而无需登录控制?

如何在没有登录控制的情况下使用表单身份验证.我不想在我的站点中使用asp.net登录控件.但是我必须实现表单身份验证并验证我的数据库中的用户.

asp.net forms-authentication asp.net-membership custom-membershipprovider asp.net-authentication

2
推荐指数
1
解决办法
1万
查看次数

具有表单身份验证的Web API匿名服务访问

我正在尝试确定如何在表单身份验证下配置对Web API控制器服务的访问.如果我添加授权配置以通过添加授权元素拒绝所有匿名用户:

<authorization>
   <! - 拒绝所有匿名用户 - >
   <deny users ="?" />
</ authorization>

只能按预期访问登录页面.但我还想访问从控制器返回的列表.我将[AllowAnonymous]属性添加到一个简单的服务,该服务返回用于填充下拉菜单的值.例如:

namespace WebAPI.Controllers
{
    public class RegisterController : ApiController
    {
        [AllowAnonymous]
        public List<ListElement> GetActivitiesList()
        {
            List<ListElement> li = new List<ListElement>();

            li.Add(new ListElement() { Id = 1, Text = "Item 1" });
            li.Add(new ListElement() { Id = 2, Text = "Item 2" });
            li.Add(new ListElement() { Id = 3, Text = "Item 3" });

            return li;

        }

    }
}
Run Code Online (Sandbox Code Playgroud)

我将controllers目录添加到web.config中允许的列表中:

<location path ="Controllers">
   <system.web>
   <authorization>
      <allow users …

asp.net forms-authentication web-config asp.net-web-api

2
推荐指数
1
解决办法
3362
查看次数

MVC5表单身份验证不起作用

我对.NET和安全性都很陌生.我选择实现Forms身份验证(如果我应该使用其他东西,请更正我).从我在互联网上收集到的内容,我做了以下操作,但它不起作用:

Web.config文件

<authentication mode="Forms">
   <forms loginUrl="~/Home/Index" timeout="30" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

HTTPPost ajax登录方法:

 [HttpPost]
        public ActionResult Login(LoginInputModel loginModel)
        {
            if (ModelState.IsValid)
            {
                var success = UserService.Login(loginModel.Password, loginModel.Email);
                if (success)
                {
                    return Json(new { Url = Url.Action("Index","Home") });
                }
                loginModel.ErrorMessages = "Failed to log in with these credentials. Please try again.";
                return PartialView("Widgets/Login/_LoginInput", loginModel);
            }
            return PartialView("Widgets/Login/_LoginInput", loginModel);
        }
Run Code Online (Sandbox Code Playgroud)

使用UserService类中的实际登录代码:

  public static bool Login(string password, string email)
        {
            var user = Connector.GetUserByCredentials(password, email);
            if (user == null) return false;
            FormsAuthentication.SetAuthCookie(email, false); // this …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc forms-authentication

2
推荐指数
1
解决办法
5530
查看次数