User.Identity.Name
null参照例外をスローするのではなく、認証されたユーザーがいない場合に空の文字列を返すように見えることに気付きました。
User.Identity.Name
決して投げないことを仮定することは有効ですか?または、アクセスする前にnullをチェックする必要がありIdentity
ます。
User.Identity.Name
null参照例外をスローするのではなく、認証されたユーザーがいない場合に空の文字列を返すように見えることに気付きました。
User.Identity.Name
決して投げないことを仮定することは有効ですか?または、アクセスする前にnullをチェックする必要がありIdentity
ます。
呼び出していない場合、Userオブジェクトはnullになる可能性があると思います
FormsAuthentication.SetAuthCookie(UserName, False)
また
FormsAuthentication.RedirectFromLoginPage(UserName, False)
トライキャッチでラップするのがおそらく最善でしょう。
User.Identity
User
現在のに存在しない場合、null参照例外をスローしますHttpContext
。それUser
はnullですが、ではありませんIdentity
。そうです、何らかの方法でnullをチェックまたは処理する必要があります。
Name
は文字列でIdentity
あり、オブジェクトですが、他のオブジェクトと同様に、それUser
は確かにnullになる可能性があります。したがって、例外がスローされる可能性は常にあります。本番アプリケーションとしては、try / catchでラップし、Nameのnullを確認することをお勧めします。
Name
はメソッドではなくプロパティであるため、Microsoftクラスであるため、その「ゲッター」ビットが例外をスローする可能性はほとんどありません。フレームワークの設計ガイドラインでは、ゲッターからの例外のスローに対して明示的に警告しています。おそらくどこかでこのルールに例外がありますが...
また、私は通常、メタデータを、メソッドによって例外がスローされた場合のガイドとして使用します(.Net Frameworkクラスの場合)。Visual StudioでF12キーを押すと(Reflectorなどがインストールされていない場合)、メタデータが表示されます。メソッドの上のコメントブロックでは、通常、メソッドがスローする可能性のある例外の正確なタイプが示されます。