0

管理エリアのproductcontrollerのCreateアクションにAuthorize属性を追加するまで、正常に機能するビューがあります。

[Authorize]
public ActionResult Create()
{
ViewBag.Action = "Create";
VewBag.Category = new SelectList(this.categoryCoreModel.Categories, "CategoriaKy", "CategoriaDescIT");
ViewBag.SubCategory = new SelectList(this.subCategoryCoreModel.SubCategories, "CategoriaSubKy", "CategoriaSubDescIT");
return this.View("Create", new ProductEditModel ());
}

私からしてみれば

<div class="form">
    @using (Html.BeginForm((string)ViewBag.Action, "Product", FormMethod.Post, new { Model, enctype = "multipart/form-data" }))
    {
         ...............
         .............
 }

私の問題は、[保存] ボタンをクリックすると、存在しない Admin/Home などの別の URL にリダイレクトされることです。また、Form タグもありません。ここで何が欠けていますか?

編集済み:ログインに成功した後、ログイン部分ビューがフォームをレンダリングし、製品フォームが混乱しているようです。

  @(Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" })) {
            @Html.AntiForgeryToken()
            <a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
        }

どんなアイデアやフィードバックも素晴らしいでしょう

4

1 に答える 1

1

[Authorize(Roles="SomeRoleName")] が表示されることを期待していたので、ロールを指定していないため(実際にはログインしていない可能性があります)、リダイレクトされます。ロール プロバイダーが loginUrl で指定した場所

このようにSimpleRoleProviderを使用していますか?

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
  <providers>
    <clear />
    <add name="SimpleRoleProvider" type="Models.SimpleRoleProvider, Models, Version=1.0.0.0, Culture=neutral" />
  </providers>
</roleManager>

その場合、HttpContext.User.Identity および/または HttpContext.User.IsInRole は [Authorize()] が期待するものを返しません。ログオンセクションを見て、ユーザーをログイン済みとして設定していること、およびユーザーがラッチする権限を持っていることを確認することをお勧めします。

お役に立てれば

于 2013-11-15T09:02:50.443 に答える