123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357 |
- /**
- Licensed Materials - Property of IBM
- IBM Cognos Products: DOCS
- (C) Copyright IBM Corp. 2005, 2008
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
- IBM Corp.
- */
- using System;
- using System.Drawing;
- using System.Collections;
- using System.ComponentModel;
- using System.Windows.Forms;
- using SamplesCommon;
- using cognosdotnet_10_2;
- namespace Security
- {
- /// <summary>
- /// Summary description for SecurityDlg.
- /// </summary>
- public class SecurityDlg : System.Windows.Forms.Form
- {
- private System.Windows.Forms.Label ServerUrlLBL;
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.ComboBox securityOptionCB;
- private System.Windows.Forms.Button buttonRunOption;
- private System.Windows.Forms.RichTextBox resultsDisplayWindowRTB;
- private System.Windows.Forms.Label resultsDisplayWindowLBL;
- private System.Windows.Forms.MainMenu mainMenu1;
- private System.Windows.Forms.MenuItem menuItemFile;
- private System.Windows.Forms.MenuItem menuItemExit;
- private System.Windows.Forms.MenuItem menuItemHelp;
- private System.Windows.Forms.MenuItem menuItemAbout;
- private IContainer components;
- private static SamplesConnect CBIConnection = null;
- private string savedUserName = "";
- private string savedNamespace = "";
- private System.Windows.Forms.TextBox serverUrlTB;
- private bool loggedIn = false;
-
- public SecurityDlg()
- {
- //
- // Required for Windows Form Designer support
- //
- InitializeComponent();
- //
- // TODO: Add any constructor code after InitializeComponent call
- //
- }
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- protected override void Dispose( bool disposing )
- {
- if( disposing )
- {
- if(components != null)
- {
- components.Dispose();
- }
- }
- base.Dispose( disposing );
- }
- #region Windows Form Designer generated code
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent()
- {
- this.components = new System.ComponentModel.Container();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SecurityDlg));
- this.ServerUrlLBL = new System.Windows.Forms.Label();
- this.serverUrlTB = new System.Windows.Forms.TextBox();
- this.label1 = new System.Windows.Forms.Label();
- this.securityOptionCB = new System.Windows.Forms.ComboBox();
- this.buttonRunOption = new System.Windows.Forms.Button();
- this.resultsDisplayWindowRTB = new System.Windows.Forms.RichTextBox();
- this.resultsDisplayWindowLBL = new System.Windows.Forms.Label();
- this.mainMenu1 = new System.Windows.Forms.MainMenu(this.components);
- this.menuItemFile = new System.Windows.Forms.MenuItem();
- this.menuItemExit = new System.Windows.Forms.MenuItem();
- this.menuItemHelp = new System.Windows.Forms.MenuItem();
- this.menuItemAbout = new System.Windows.Forms.MenuItem();
- this.SuspendLayout();
- //
- // ServerUrlLBL
- //
- this.ServerUrlLBL.Location = new System.Drawing.Point(16, 13);
- this.ServerUrlLBL.Name = "ServerUrlLBL";
- this.ServerUrlLBL.Size = new System.Drawing.Size(144, 16);
- this.ServerUrlLBL.TabIndex = 0;
- this.ServerUrlLBL.Text = "Server URL";
- //
- // serverUrlTB
- //
- this.serverUrlTB.BackColor = System.Drawing.SystemColors.Control;
- this.serverUrlTB.Location = new System.Drawing.Point(16, 32);
- this.serverUrlTB.Name = "serverUrlTB";
- this.serverUrlTB.Size = new System.Drawing.Size(600, 20);
- this.serverUrlTB.TabIndex = 1;
- //
- // label1
- //
- this.label1.Location = new System.Drawing.Point(160, 72);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(80, 16);
- this.label1.TabIndex = 2;
- this.label1.Text = "Choose Option";
- //
- // securityOptionCB
- //
- this.securityOptionCB.Location = new System.Drawing.Point(160, 88);
- this.securityOptionCB.Name = "securityOptionCB";
- this.securityOptionCB.Size = new System.Drawing.Size(160, 21);
- this.securityOptionCB.TabIndex = 3;
- //
- // buttonRunOption
- //
- this.buttonRunOption.Location = new System.Drawing.Point(336, 88);
- this.buttonRunOption.Name = "buttonRunOption";
- this.buttonRunOption.Size = new System.Drawing.Size(104, 24);
- this.buttonRunOption.TabIndex = 4;
- this.buttonRunOption.Text = "Run Option";
- this.buttonRunOption.Click += new System.EventHandler(this.buttonRunOption_Click);
- //
- // resultsDisplayWindowRTB
- //
- this.resultsDisplayWindowRTB.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.resultsDisplayWindowRTB.BackColor = System.Drawing.SystemColors.Control;
- this.resultsDisplayWindowRTB.Location = new System.Drawing.Point(16, 136);
- this.resultsDisplayWindowRTB.Name = "resultsDisplayWindowRTB";
- this.resultsDisplayWindowRTB.Size = new System.Drawing.Size(600, 264);
- this.resultsDisplayWindowRTB.TabIndex = 5;
- this.resultsDisplayWindowRTB.Text = "";
- //
- // resultsDisplayWindowLBL
- //
- this.resultsDisplayWindowLBL.Location = new System.Drawing.Point(16, 120);
- this.resultsDisplayWindowLBL.Name = "resultsDisplayWindowLBL";
- this.resultsDisplayWindowLBL.Size = new System.Drawing.Size(128, 16);
- this.resultsDisplayWindowLBL.TabIndex = 6;
- this.resultsDisplayWindowLBL.Text = "Results Display Window";
- //
- // mainMenu1
- //
- this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
- this.menuItemFile,
- this.menuItemHelp});
- //
- // menuItemFile
- //
- this.menuItemFile.Index = 0;
- this.menuItemFile.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
- this.menuItemExit});
- this.menuItemFile.Text = "File";
- //
- // menuItemExit
- //
- this.menuItemExit.Index = 0;
- this.menuItemExit.Text = "Exit";
- this.menuItemExit.Click += new System.EventHandler(this.menuItemExit_Click);
- //
- // menuItemHelp
- //
- this.menuItemHelp.Index = 1;
- this.menuItemHelp.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
- this.menuItemAbout});
- this.menuItemHelp.Text = "Help";
- //
- // menuItemAbout
- //
- this.menuItemAbout.Index = 0;
- this.menuItemAbout.Text = "About";
- this.menuItemAbout.Click += new System.EventHandler(this.menuItemAbout_Click);
- //
- // SecurityDlg
- //
- this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
- this.ClientSize = new System.Drawing.Size(632, 414);
- this.Controls.Add(this.resultsDisplayWindowLBL);
- this.Controls.Add(this.resultsDisplayWindowRTB);
- this.Controls.Add(this.buttonRunOption);
- this.Controls.Add(this.securityOptionCB);
- this.Controls.Add(this.label1);
- this.Controls.Add(this.serverUrlTB);
- this.Controls.Add(this.ServerUrlLBL);
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.Menu = this.mainMenu1;
- this.Name = "SecurityDlg";
- this.Text = "Security Sample";
- this.Load += new System.EventHandler(this.SecurityDlg_Load);
- this.ResumeLayout(false);
- this.PerformLayout();
- }
- #endregion
- private void menuItemExit_Click(object sender, System.EventArgs e)
- {
- this.Close();
- }
- private void menuItemAbout_Click(object sender, System.EventArgs e)
- {
- SamplesAbout about = new SamplesAbout();
- about.applicationName = "Security Sample";
- about.applicationVersion = "1.1";
- about.Show();
- }
- private void SecurityDlg_Load(object sender, System.EventArgs e)
- {
- // Check if the current user is logged in as Anonymous
- // if so, enable the check box.
- account myAccount = new account();
- baseClass[] bc = new baseClass[1];
- propEnum[] props = new propEnum[] { propEnum.searchPath, propEnum.defaultName };
- searchPathMultipleObject homeSearchPath = new searchPathMultipleObject();
- homeSearchPath.Value = "~";
- try
- {
- bc = CBIConnection.CBICMS.query(homeSearchPath, props, new sort[] {}, new queryOptions());
- }
- catch(System.Exception ex)
- {
- // Anonymous is OFF
- securityOptionCB.Items.Add("Get Logon Info");
- securityOptionCB.Items.Add("Logoff");
- securityOptionCB.SelectedIndex = 0;
- return;
- }
- if (bc != null)
- {
- // Anonymous is ON.
- securityOptionCB.Items.Add("Get Logon Info");
- securityOptionCB.Items.Add("Logon as a different user");
- securityOptionCB.Items.Add("Logoff");
- securityOptionCB.SelectedIndex = 0;
- return;
- }
- }
- // This function is the main driver for this sample.
- private void buttonRunOption_Click(object sender, System.EventArgs e)
- {
- clearDisplayWindow();
- string result = "";
- Security securityObj = new Security();
- string selectedOption = (string)securityOptionCB.SelectedItem;
- if ( (selectedOption == null) || (0 == selectedOption.CompareTo("")) )
- {
- MessageBox.Show("Please select a valid security option.");
- return;
- }
- if (0 == selectedOption.CompareTo("Get Logon Info"))
- {
- if (!isLoggedIn(CBIConnection.CBICMS))
- {
- try
- {
- if (securityObj.doLogon(CBIConnection, savedUserName, savedNamespace, ref result))
- {
- loggedIn = true;
- }
- }
- catch (System.Exception ex)
- {
- result = "logon failure: " + ex.Message + ".\n";
- }
- }
- result = "";
- securityObj.getLogonInfo(CBIConnection, ref result);
- }
- else if (0 == selectedOption.CompareTo("Logon as a different user"))
- {
- if (securityObj.doLogonAs(CBIConnection, savedUserName, savedNamespace, ref result))
- {
- loggedIn = true;
- }
- }
- else if (0 == selectedOption.CompareTo("Logoff"))
- {
- if (securityObj.doLogoff(CBIConnection, ref result))
- {
- loggedIn = false;
- }
- }
- displayMessage(result);
- }
- public bool isLoggedIn(contentManagerService1 cBICMS)
- {
- return ( isAnonymous(cBICMS) || loggedIn );
- }
- public bool isAnonymous(contentManagerService1 cBICMS)
- {
- bool doTestForAnonymous = false;
- try
- {
- searchPathMultipleObject homeSearchPath = new searchPathMultipleObject();
- homeSearchPath.Value = "~";
- baseClass[] bc =
- cBICMS.query(
- homeSearchPath,
- new propEnum[] {},
- new sort[] {},
- new queryOptions());
- if (bc != null)
- {
- doTestForAnonymous = true;
- }
- else
- {
- doTestForAnonymous = false;
- }
- }
- catch (System.Exception ex)
- {
- //Ignore this, it means that Anonymous access is denied...
- }
- return doTestForAnonymous;
- }
- public void setConnection(SamplesConnect cBIConnection, string cBIUrl, string userName, string userNamespace)
- {
- CBIConnection = cBIConnection;
- serverUrlTB.Text = cBIUrl;
- savedUserName = userName;
- savedNamespace = userNamespace;
- }
- public void displayMessage(string message)
- {
- resultsDisplayWindowRTB.AppendText("\n" + message);
- }
- public void clearDisplayWindow()
- {
- resultsDisplayWindowRTB.Clear();
- }
- }
- }
|