~ifolder-dev/simias/trunk-packaging

« back to all changes in this revision

Viewing changes to src/core/Simias.log4net/src/Util/PatternStringConverters/.svn/text-base/UserNamePatternConverter.cs.svn-base

  • Committer: Jorge O. Castro
  • Date: 2007-12-03 06:56:46 UTC
  • Revision ID: jorge@ubuntu.com-20071203065646-mupcnjcwgm5mnhyt
* Remove a bunch of .svn directories we no longer need.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#region Copyright & License
2
 
//
3
 
// Copyright 2001-2005 The Apache Software Foundation
4
 
//
5
 
// Licensed under the Apache License, Version 2.0 (the "License");
6
 
// you may not use this file except in compliance with the License.
7
 
// You may obtain a copy of the License at
8
 
//
9
 
// http://www.apache.org/licenses/LICENSE-2.0
10
 
//
11
 
// Unless required by applicable law or agreed to in writing, software
12
 
// distributed under the License is distributed on an "AS IS" BASIS,
13
 
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 
// See the License for the specific language governing permissions and
15
 
// limitations under the License.
16
 
//
17
 
#endregion
18
 
 
19
 
using System;
20
 
using System.Text;
21
 
using System.IO;
22
 
 
23
 
using log4net.Util;
24
 
 
25
 
namespace log4net.Util.PatternStringConverters
26
 
{
27
 
        /// <summary>
28
 
        /// Write the current threads username to the output
29
 
        /// </summary>
30
 
        /// <remarks>
31
 
        /// <para>
32
 
        /// Write the current threads username to the output writer
33
 
        /// </para>
34
 
        /// </remarks>
35
 
        /// <author>Nicko Cadell</author>
36
 
        internal sealed class UserNamePatternConverter : PatternConverter 
37
 
        {
38
 
                /// <summary>
39
 
                /// Write the current threads username to the output
40
 
                /// </summary>
41
 
                /// <param name="writer">the writer to write to</param>
42
 
                /// <param name="state">null, state is not set</param>
43
 
                /// <remarks>
44
 
                /// <para>
45
 
                /// Write the current threads username to the output <paramref name="writer"/>.
46
 
                /// </para>
47
 
                /// </remarks>
48
 
                override protected void Convert(TextWriter writer, object state) 
49
 
                {
50
 
#if (NETCF || SSCLI)
51
 
                        // On compact framework there's no notion of current Windows user
52
 
                        writer.Write( SystemInfo.NotAvailableText );
53
 
#else
54
 
                        try
55
 
                        {
56
 
                                System.Security.Principal.WindowsIdentity windowsIdentity = null;
57
 
                                windowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent();
58
 
                                if (windowsIdentity != null && windowsIdentity.Name != null)
59
 
                                {
60
 
                                        writer.Write( windowsIdentity.Name );
61
 
                                }
62
 
                        }
63
 
                        catch(System.Security.SecurityException)
64
 
                        {
65
 
                                // This security exception will occur if the caller does not have 
66
 
                                // some undefined set of SecurityPermission flags.
67
 
                                LogLog.Debug("UserNamePatternConverter: Security exception while trying to get current windows identity. Error Ignored.");
68
 
 
69
 
                                writer.Write( SystemInfo.NotAvailableText );
70
 
                        }
71
 
#endif
72
 
                }
73
 
        }
74
 
}