Web Api の作業を開始し、単純な基本認証を作成したいだけです。その方法を知りたいですか?
指定された MSDN リンクを試してみましたが、MSDN には段階的なチュートリアルはありません。 http://www.asp.net/web-api/overview/security/basic-authentication
Web Api の作業を開始し、単純な基本認証を作成したいだけです。その方法を知りたいですか?
指定された MSDN リンクを試してみましたが、MSDN には段階的なチュートリアルはありません。 http://www.asp.net/web-api/overview/security/basic-authentication
あなたが提供したリンクは、必要な詳細の多くを提供します。これが空白を埋めることを願っています.
注: Web.API 2 を使用している場合、Microsoft は認証フィルターを使用した別のアプローチを提案しています。
真のセキュリティが必要な場合、これは非常に重要です。そうしないと、スヌーピング パーティによってパスワードが収集される可能性があります。これを行う方法は、セットアップに完全に依存するため、詳しく説明しませんが、Azure WebRole で作業している場合は、Microsoft からSSL をセットアップするための非常に優れたステップバイステップ ガイドがあります。
これは次のステップでは必須ではありませんが、コードをリリースする前に実行する必要があります。通常、この部分には他の人 (サーバー構成のシステム管理者、証明書を購入する財務など) が関与するため、最初に言及します。彼らに多くの警告を与えるのは良いことです。
これは、リンク内の C# コードの大きなブロックです。ブラウザーから送信された値を解析し、HttpContext.Current.User を認証済みユーザーに設定します。肉をコピーして、独自のアプリケーションのクラスに貼り付けるだけです。後で説明します。コードには次の using ステートメントが必要です。
using System; using System.Net.Http.Headers; using System.Security.Principal;
using System.Text; using System.Threading; using System.Web;
web.config ファイルに新しいモジュールを追加します (system.webServer はおそらく既に存在することに注意してください)。
<system.webServer>
<modules>
<add name="BasicAuth" type="Full.ClassName.Path.BasicAuth, Assembly.Name"/>
</modules>
</system.webServer>
アクション定義の前に [Authorize] 属性を追加することで、特定のアクションをブロックできます。コントローラー クラスの前に追加して、コントローラー全体をブロックします。
[Authorize] // Restricts access to whole controller
public class StockController : ApiController {
[Authorize] // Restricts access to this action - not necessary if whole controller restricted.
public IEnumerable<StockLevel> Get() {
または、App_Start\WebApiConfig.cs ファイルに追加するconfig.Filters.Add(new AuthorizeAttribute());
と、すべてがロックされます。
注意すべき点 -System.Web.Mvc.AuthorizeAttribute
その名前空間が含まれていると、混乱を招く結果が得られる可能性もあります。
この時点で、試してみることができます - user: "user", pass: "password".
リンクから盗んだクラスに戻ると、次のコード ブロックが表示されます。
// TODO: Here is where you would validate the username and password.
private static bool CheckPassword(string username, string password)
ユーザー名とパスワードが有効な場合に true を返すようにこれを変更します。独自のものを展開している場合は、bcrypt (ネットからダウンロードした実装を信頼しますか?)、PBKDF2、またはCrypto クラス(シンプルですが、それほど安全ではありません) を調査することをお勧めしますが、Microsoft からはもっと良いものがたくさんあるので、おそらく何かがあるでしょう。パスワードを適切に保存することに関する懸念。
コントローラーごとまたはメソッドごとに基本認証を選択的に有効にするには、この質問AuthorizeAttribute
で説明されているように派生させることができます。