cflogin タグの注意事項

<cflogin>タグの注意事項についてご紹介します。

  1. 同じユーザー名での同時ログイン
    • ColdFusion MX~9では、同じユーザー名でも複数環境(異なるブラウザ・PC)同時にログインが可能でした
    • ColdFusion 10では、同じユーザー名での同時ログインは無効です。既にログイン済みのユーザーと同じユーザー名でログイン(例えば、複数人で同じ tech というユーザーを使いまわしていたと)すると、既にログイン済みのセッションは強制的にログアウト状態にされます
      ColdFusion 10 セキュリティ強化に伴う cfloginタグの挙動の違いについて
    • ColdFusion 11では、新たにallowconcurrent属性が追加され、同時ログインの有無を設定可能です(デフォルトは true : 同時ログイン可)
      https://wikidocs.adobe.com/wiki/display/coldfusionjp/cflogin

       
  2. ColdFusion 11でログアウトの再ログイン時の挙動について
    • セッション変数のタイムアウト後しばらくたって再ログインすると、ログイン画面がもう一度表示される場合がある
      • もう一度ログインを入力すると、正常にログインされます
      • allowconcurrent属性を false(同時ログイン不可)にすることが回避できる
        • 同じユーザー名での同時ログインが無効になるため注意。同時ログインも有効にしたい場合は(cfloginuserのユーザー名にランダム値を付与するなどの回避を検討する)
  3. <cflogin>成功時(<cfloginuser>実行時)に<cflogin>~</cflogin>内でリダイレクト(<cflocation>) させると、ログインが無効になる
    • <cflocation>を<cflogin>~</cflogin>の後に実行することで回避ができる
    • 誤った指定例
      <cflogin>
      <cfsavecontent variable="loginForm">
        <cfform>
          ユーザー: <cfinput type="text" name="j_username"><br />
          パスワード: <cfinput type="password" name="j_password"><br />
          <cfinput type="submit" name="userLogin" value="ログイン">
        </cfform>
      </cfsavecontent>
      
      <cfif Not IsDefined("cflogin")>
        <cfoutput>#loginForm#</cfoutput><cfabort />
      <cfelse>
        <cfif cflogin.name IS "user" AND cflogin.password IS "password">
          <cfloginuser name="#cflogin.name#" password="#cflogin.password#" roles="user" >
          <cflocation url="tax.cfm" >
        <cfelse>
          <cfoutput>#loginForm#</cfoutput><cfabort />
        </cfif>
      </cfif>
      </cflogin>
      
      
    • 正しく動作する例
      <cflogin>
      <cfsavecontent variable="loginForm">
        <cfform>
          ユーザー: <cfinput type="text" name="j_username"><br />
          パスワード: <cfinput type="password" name="j_password"><br />
          <cfinput type="submit" name="userLogin" value="ログイン">
        </cfform>
      </cfsavecontent>
      
      <cfif Not IsDefined("cflogin")>
        <cfoutput>#loginForm#</cfoutput><cfabort />
      <cfelse>
        <cfif cflogin.name IS "user" AND cflogin.password IS "password">
          <cfloginuser name="#cflogin.name#" password="#cflogin.password#" roles="user" >
          <cfset Login_flag = true>
        <cfelse>
          <cfoutput>#loginForm#</cfoutput><cfabort />
        </cfif>
      </cfif>
      </cflogin>
      <cfif IsDefined("Login_flag") AND Login_flag>
      <cflocation url="tax.cfm" >
      </cfif>
      

 


記事公開日:2015年06月23日
最終更新日:2015年06月23日


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.