[K2 SmartForms] Log Out Button

สวัสดีครับทุกท่านครับ วันนี้มาเสนอ solution สำหรับทำปุ่ม logout ซึ่งก่อนที่จะทำ solution นี้อาจจะต้อง set K2 SmartForms ไปใช้ form authentication ก่อนนะครับ ซึ่งสามารถดูรายละเอียดตามนี้ครับ [K2 SmartForms] – เรื่องเกี่ยวกับ Authentication

เมื่อเราทำการติดตั้ง K2 Smartform เสร็จแล้วใน site K2 runtime หรือว่า K2 designer จะมี folder _trust สังเกตุเห็นว่ามี logout.aspx และ login.aspx อยู่ดังภาพ

logout-1

ทีนี้สิ่งที่เราจะทำก็คือสร้าง ปุ่มขึ้นมา 1 ปุ่มเพื่อทำเป็นปุ่ม logout แล้วทำการ Config rule ดังภาพครับ
logout-2

logout-3

Base URL:  https://k2.denallix.com/Runtime/_trust/logout.aspx
Note : [K2 url]/Runtime/_trust/logout.aspx or [K2 url]/Designer/_trust/logout.aspx

 จากนั้นลองมา Test ที่ Runtime กันครับ เมื่อเราทำการกดปุ่มที่เรา Config เสร็จแล้วหน้า Page K2 จะขึ้นให้ทำการ login User ดังรูปครับ ซึ่ง session ของ User ที่ทำการ login อยู่ขณะนั้นจะถูก clear ทิ้งทันทีถึงแม้ว่าเรากำลังเปิด tab อื่นๆอยู่หากไปทำการ refresh tab อื่น หน้าจอจะกลับไปแสดงหน้า login อยู่ดีครับ
logout-4

เมื่อทำการ login อีกครั้งโดยยังไม่ปิด browser จะปรากฎ page default ของ K2 SmartForm ดังภาพครับ
logout-5
ซึ่งจะมีคำถามต่อมาว่า อ้าววววว สามารถให้ไปหน้าที่เราต้องการหลังจาก login อีกครั้งไหมคำตอบคือได้ครับทางออกมี 2 วิธีเท่าที่ทราบตอนนี้คือ

1.ทำการ  แก้ไข file default.aspx  ซึ่ง file อยู่ที่ Path “C:\Program Files (x86)\K2 blackpearl\K2 smartforms Runtime\default.aspx”
โดยทำการเพิ่ม java script เพื่อให้ redirect ไปหน้าที่เราต้องการครับ

ก่อนแก้ไข  default.aspx
logout-6

เพิ่ม java script ลงใน tag </head>

function redirect() {
window.location.assign(“~/form/Test+Logout/”)
}

เพิ่ม  onload ลงใน tag </body>
<body onload=”redirect();”>

หลังทำการเพิ่ม Java script  file default.aspx
logout-7

2. Config rule ให้ navigate ไป [K2 url]/Runtime/_trust/login.aspx แทนพร้อมทั้งระบุ parameter ReturnUrl หน้า page ที่ต้องการให้ไปหลังจากทำการ login อีกครั้ง สามารถดูรายละเอียดได้ด้านล่างครับ

logout-8

Comfig Parameter

Name value
ReturnUrl %2FRuntime%2FRuntime%2FForm%2FTest+Logout%2F
_sessionUpdate  1

Note :  %2FRuntime%2FRuntime%2FForm%2F[SmartFormSystemName]%2F

หากมีท่านใดเจอแนวทางอื่นสามารถแนะนำเข้ามาได้ครับ  🙂

Test on K2 version
4.7
4.6.11

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s