アカウント名の検証に関する問題


解説

デフォルトのSitecoreでは、以下の正規表現にマッチするユーザー名のみを使用することができます。
「^\w[\w\s]*$」

これは、英数字で始まり、任意の数の、英数字または空白文字でない記号が続くユーザー名が使用できることを意味します。

Sitecoreは外部のセキュリティ プロバイダー(ADやCRMプロバイダーなど)を使用しているため、ビルトイン アカウント名検証をパスしない名前の場合、セキュリティ関連の操作を実行すると、次のようなエラーが発生することがあります:

System.Web.HttpRequestValidationException. Message: User name "ad\name.surname" is not valid.

解決策

  1. Web.configファイルの<settings>セクションに、以下の設定を追加します。
    <!--  ACCOUNT NAME VALIDATION
        Regular expression for validating account name
    -->
    <setting name="AccountNameValidation" value="^\w[\w\s]*$"/>
  2. 「value」属性の最初の正規表現を、必要な表現に置き換えます。例えば、メールアドレスをユーザー名として許可する場合は、以下のような正規表現が必要です。
    「^\w[\w\s\.\@]*$」

.NETにおける正規表現については、以下の記事を参照してください:
‌https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expressions