Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Owin身份验证-表单标记中的按钮重定向到登录_C#_Asp.net_Asp.net Mvc_Authentication_Owin - Fatal编程技术网

C# Owin身份验证-表单标记中的按钮重定向到登录

C# Owin身份验证-表单标记中的按钮重定向到登录,c#,asp.net,asp.net-mvc,authentication,owin,C#,Asp.net,Asp.net Mvc,Authentication,Owin,我想问一下Owin是如何处理表单标签中的请求的,我在表单标签中放置了一个按钮,单击它后,它会继续重定向到登录页面。下面是我继承的BaseController上的代码 public class BaseController : Controller { public ISessionState SessionWrapper; public BaseController(ISessionState sessionWrapper) { SessionWrapp

我想问一下Owin是如何处理表单标签中的请求的,我在表单标签中放置了一个按钮,单击它后,它会继续重定向到登录页面。下面是我继承的BaseController上的代码

public class BaseController : Controller
{
    public ISessionState SessionWrapper;

    public BaseController(ISessionState sessionWrapper)
    {
        SessionWrapper = sessionWrapper;
    }

    public AppUser CurrentUser => new AppUser(User as ClaimsPrincipal);

    protected override void Initialize(RequestContext requestContext)
    {
        base.Initialize(requestContext);

        if (requestContext.HttpContext.User != null && requestContext.HttpContext.User.Identity != null &&
            requestContext.HttpContext.User.Identity.IsAuthenticated)
        {
            ViewData["LocationList"] = CurrentUser.LocationList;
            ViewData["UserInfo"] = CurrentUser.UserInfo;
        }
    }
}
请参阅下面的控制器

    public class HomeController : BaseController
    {
    private readonly IQueryProcessor _queryProcessor;

    public HomeController(IQueryProcessor queryProcessor, ISessionState sessionWrapper) :
        base(sessionWrapper)
    {
        _queryProcessor = queryProcessor;
    }


    public ActionResult Index()
    {
        var locations = CurrentUser.LocationList;

        SessionWrapper.Clear();
        SessionWrapper.Store("key", "some value");
        return View();
    }


    [HttpPost]
    public ActionResult Index(int a)
    {
        return View();
    }

    public ActionResult About()
    {
        ViewBag.Message = "Your application description page. " + SessionWrapper.Get("key");
        ;

        return View();
    }

    public ActionResult Contact()
    {
        ViewBag.Message = "Your contact page.";

        return View();
    }
}
下面是视图

@{
    ViewBag.Title = "Home Page";
}

<!-- Breadcrumbs line -->
<div class="crumbs">
    <ul id="breadcrumbs" class="breadcrumb">
        <li>
            <a href="@Url.Action("", "")" title=""><i class="icon-home"></i></a>
        </li>
        <li class="current">
            <a href="##" title="">Today</a>
        </li>
    </ul>
</div>

<div class="page-title">
    <h3>Welcome to HSWORX</h3>
    <span>
        Good morning, John!
    @{
        if (User.Identity.IsAuthenticated)
        {
            <label> Authenticatd</label>
        }
        else
        {
            <label> Un- Authenticatd</label>
        }
    }</span>
</div>

<div class="row">
    <div class="col-md-12">

    </div>
</div>



@using (Html.BeginForm())
{


    <input type="submit" value="Test HTTPPOST" />
    <button>Test</button>
}
@{
ViewBag.Title=“主页”;
}
欢迎来到HSWORX 早上好,约翰! @{ if(User.Identity.IsAuthenticated) { 认证 } 其他的 { 未经认证 } } @使用(Html.BeginForm()) { 试验 }
如果您被重定向到登录页面,则表单发布到的控制器和/或操作可能具有[授权]属性,该属性要求用户登录。有点不清楚你的表单和按钮实际上在做什么。Hi Mark更新了我的问题,加入了HomeController。无论是否带有authorize属性,它仍然重定向到登录页面。我已经在视图中检查了用户是否经过身份验证,并且它似乎已经过身份验证。您是否也可以在视图中包含带有表单标记和按钮的部分?Hi Mark再次更新了我的问题,尝试添加一个按钮和一个提交类型按钮,单击后这两个按钮都会重定向到登录页面。这是Views\Home\Index.cshtml的视图吗?您可以在生成的HTML中仔细检查表单标记中呈现的“action”属性吗。应该是(如果是主视图\索引视图)。